// import { createCrawl } from "x-crawl";

// const crawlApp = createCrawl({
//   maxRetry: 3,
//   // 取消以无头模式运行浏览器
//   crawlPage: { puppeteerLaunchOptions: { headless: false } },
// });

// crawlApp.crawlPage("https://www.example.com").then((res) => {});

/////////////////////////////////////////////////////////////////////////////////

// import { createCrawl } from "x-crawl";

// (async () => {
//   const crawlApp = createCrawl({
//     maxRetry: 3,
//     // 写入option, 将打开浏览器
//     // 取消以无头模式运行浏览器
//     crawlPage: { puppeteerLaunchOptions: { headless: false } },
//   });

//   const { browser, page } = (
//     await crawlApp.crawlPage("https://www.example.com")
//   ).data;

//   // 获取页面渲染后的截图, 需要有此资源地址
//   await page.screenshot({ path: "./upload/page.png" });

//   console.log("获取屏幕截图完毕");

//   browser.close();
// })();

/////////////////////////////////////////////////////////////////////////////////

// import { createCrawl } from "x-crawl";
//
// const crawlApp = createCrawl({ intervalTime: { max: 3000, min: 1000 } });
//
// crawlApp
//   .crawlHTML([
//     "http://www.nhc.gov.cn/xcs/s7852/202405/e7cc97ec3c134a0ca5e36d72ef41781a.shtml",
//     // "https://www.example.com/html-1",
//     // "https://www.example.com/html-2",
//   ])
//   .then((res) => {
//     console.log(res);
//     // 处理
//   });

/////////////////////////////////////////////////////////////////////////////////

// import { createCrawl } from "x-crawl";

// const crawlApp = createCrawl({ intervalTime: { max: 3000, min: 1000 } });

// const targets = [
//   // "https://www.example.com/api-3", // 可以获取 xml
//   "https://uapis.cn/api/say", // 可以获取 json
//   "https://uapis.cn/api/textmd5?text=加密内容",
//   {
//     url: "https://uapis.cn/api/textmd5?text=Jfoiawejifje",
//     method: "POST",
//     data: { text: "" },
//   },
// ];

// crawlApp
//   .crawlData({
//     targets,
//     // 生命周期函数
//     onCrawlItemComplete: function (res) {
//       console.log(res);
//     },
//   })
//   .then((res) => {
//     // 处理
//     res.forEach((item) => {
//       console.log(item.data.data);
//     });
//   });

/////////////////////////////////////////////////////////////////////////////////

// import { createCrawl } from "x-crawl";

// const crawlApp = createCrawl({ intervalTime: { max: 3000, min: 1000 } });

// crawlApp
//   .crawlFile({
//     targets: [
//       "https://www.example.com/file-1",
//       "https://www.example.com/file-2",
//     ],
//     storeDirs: "./upload", // 存放文件夹
//     onBeforeSaveItemFile: (info) => {
//       console.log(info);
//     },
//   })
//   .then((res) => {
//     console.log(res);
//   });

/////////////////////////////////////////////////////////////////////////////////

import { createCrawl } from "x-crawl";

const crawlApp = createCrawl({
  headless: false, // 是否启用无头浏览器
  intervalTime: { max: 3000, min: 1000 },
  // 传递给 puppeteer 的选项
  crawlPage: {
    puppeteerLaunchOptions: {
      headless: false, // 是否启用无头浏览器
      // 这里可以设置浏览器的可执行文件路径
      executablePath: `C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe`,
      ignoreDefaultArgs: ["--enable-automation"], // 忽略默认的自动化参数
    }
  },
  args: ["--no-sandbox", "--disable-setuid-sandbox", '--disable-blink-features=AutomationControlled'],
});

// crawlApp.crawlFile

crawlApp
  .crawlPage({
    targets: [
      // "https://www.nhc.gov.cn/xcs/c100122/202507/b/d7286f62fe3437a97b4a0230840722c.shtml",
      "https://bot.sannysoft.com/" // 检测网站地址
    ],
    // 生命周期函数
    onCrawlItemComplete: async (res) => {
      const { browser, page, response } = res.data;

      // 访问网页之前执行脚本
      // await page.evaluateOnNewDocument(() => {
      //   // 删除 window.navigator.webdriver 属性
      //   Object.defineProperties(window.navigator, {
      //     webdriver: { get: () => undefined },
      //   });
      // });
      await page.evaluateOnNewDocument(() => {
        const newProto = navigator.__proto__;
        delete navigator.__proto__.webdriver;
        navigator.__proto__ = newProto;
      });

      // 访问网页
      await page.goto("https://www.nhc.gov.cn/xcs/c100122/202507/b/d7286f62fe3437a97b4a0230840722c.shtml");
    },
  })
  .then(async (res) => {
    // const { browser, page } = res.data;
    // // 访问网页之前执行脚本
    // await page.evaluateOnNewDocument(() => {
    //   // 删除 window.navigator.webdriver 属性
    //   Object.defineProperties(navigator, {
    //     webdriver: { get: () => undefined },
    //   });
    //   // navigator.__proto__.webdriver = () => false;
    // });
    // // 访问网页
    // await page.goto(
    //   "http://www.nhc.gov.cn/xcs/s7852/202405/e7cc97ec3c134a0ca5e36d72ef41781a.shtml"
    // );
    // // 确认属性已删除
    // const isWebDriver = await page.evaluate(() => "webdriver" in navigator);
    // console.log(`window.navigator.webdriver 存在: ${isWebDriver}`); // 应该输出 false
    // console.log(browser);
    // await page.screenshot({ path: "./upload/page.png" });
  });
